package Test3;

import java.lang.reflect.Array;
import java.util.Arrays;

class MyArray<E> {
//    Object []obj=new Object[4];
      public  E[]obj=(E[])new Object[4];
     //public Object[] obj =new Object[4];

    public E getArray(int n) {
        return obj[n] ;
    }
    public void setArray(int n,E obj) {
        this.obj[n]=obj;
    }

    public E[] getObj() {
        return obj;
    }

    public MyArray(Class<E>clazz,int capacity) {
        //反射
       obj= (E[])Array.newInstance(clazz,capacity);
    }
}

public class Test {
    //定义一个类,在类中创建一个数组，使得该数组可以存放任意类型的数据
    public static void main(String[] args) {
        MyArray <Integer>myArray=new MyArray<>(Integer.class,4);
        myArray.setArray(1,10);
        myArray.setArray(2,20);
        myArray.setArray(3,30);
        Integer[] integer=myArray.getObj();
        System.out.println(Arrays.toString(integer));
    }
    public static void main1(String[] args) {
        //实例化对象时，指定当前类的指定参数类型是Integer
//        MyArray <Integer>myArray=new MyArray<>();
//        myArray.setArray(3,100);
//        int a=myArray.getArray(3);
//        System.out.println(a);
//        MyArray<Double>myArray1=new MyArray<>();
//        myArray1.setArray(1,3.14);
//        double b=myArray1.getArray(1);
//        System.out.println(b);
//        MyArray <String>myArray2=new MyArray<>();
//        myArray2.setArray(1,"hello");
//        String c=myArray2.getArray(1);
//        System.out.println(c);
    }
}
